home *** CD-ROM | disk | FTP | other *** search
/ Internet Info 1994 March / Internet Info CD-ROM (Walnut Creek) (March 1994).iso / inet / internet-drafts / draft-ietf-telnet-transfer-option-00.txt < prev    next >
Text File  |  1993-07-08  |  17KB  |  405 lines

  1.  
  2.  
  3. Network Working Group                                          S. Denton
  4. Internet-Draft                                       Coal Services Corp.
  5.                                                                June 1993
  6.  
  7.  
  8.                      TELNET Transfer Control Option
  9.  
  10.  
  11. Status of this Memo
  12.  
  13.    This memo defines an Experimental Protocol for the Internet
  14.    community.  Discussion and suggestions for improvement are requested.
  15.    Please refer to the current edition of the "IAB Official Protocol
  16.    Standards" for the standardization state and status of this protocol.
  17.    Distribution of this memo is unlimited.
  18.  
  19. Motivation
  20.  
  21.    There has come into being on the Internet a number of loosely coupled
  22.    hypertext multi-user databases (aka MUDs).  These may be
  23.    characterized by the existence of a network-unique cursor object (aka
  24.    player) which may be passed from host to host when the user is
  25.    following what appears to be an otherwise normal database link.
  26.  
  27.    Although the security requirements of these systems are no greater
  28.    than those of anonymous FTP, each system keeps track of the user's
  29.    location within the database so that each new session starts where
  30.    the previous session ended.  For this reason, an arbitrary user
  31.    identifier is generated the first time a connection is made, and a
  32.    simple password protocol is used to avoid accidentally using another
  33.    user's cursor.  Users normally connect to these databases using a
  34.    client program that emulates a simple Network Virtual Terminal.
  35.  
  36.    Currently, the hand-off of a cursor from one host to another is
  37.    accomplished by a procedure the details of which vary from system to
  38.    system.  For the purposes of this dissusion, the procedure used by
  39.    the UnterMUD system will be described.  The current host establishes
  40.    a connection to the proposed host using a previously agreed upon port
  41.    number; the current host transfers the contents of the cursor object
  42.    to the proposed host via this connection; when and if the transfer
  43.    has been successfully completed, the current host marks the cursor
  44.    object as "not-in-use" and sends a message to the user requesting a
  45.    transfer to the proposed host.  The message has the fixed format
  46.    "#### Please reconnect to MyMUD@123.45.67.89 (MUDHOST.YOYODYNE.COM)
  47.    port 12345 ####".  The user is then expected to manually break the
  48.    Telnet connection and establish a new connection to the specified
  49.    port. Many of the more specialized client programs recognize this
  50.  
  51.  
  52.  
  53. S. Denton                Expires December 1993                  [Page 1]
  54.  
  55. Internet-Draft       TELNET Transfer Control Option            June 1993
  56.  
  57.  
  58.    message and attempt to perform the transfer transparently.
  59.  
  60.    The author conjectures that a formalized version of this protocol
  61.    would not only be convenient for the users of these databases, but
  62.    could be useful in its own right.  Several services utilize the
  63.    Telnet protcol for communications to a client.  Using this protcol, a
  64.    Telnet connection to a service could be dynamically switched to
  65.    another host for purposes of load sharing or to facilitate a simpler
  66.    data path for information retrieval.  E.g., after connecting to an
  67.    FTP server, a client may issue a CWD to a directory that is remotely
  68.    mounted via NFS from another host that also provides FTP services.
  69.    In this case, the client could be advised that an alternative
  70.    connection is preferred.  Also, the method currently in use is
  71.    subject to "spoof"-ing.  A message that resembles the transfer
  72.    request may accidentally be placed into a MUD (in help text, for
  73.    instance) where the client NVT will mistake the message for a genuine
  74.    transfer request.  Utilization of a Telnet option subnegotiation
  75.    would make a transfer request unambiguous.
  76.  
  77. 1.  Command names and codes
  78.  
  79.    XFER_CTRL       to be assigned
  80.  
  81.        Commands
  82.        IS              0
  83.        SEND            1
  84.        INFO            2
  85.        NAME            3
  86.  
  87.        Roles
  88.        CLIENT          0
  89.        SERVER          1
  90.  
  91.  
  92. 2.  Command meanings
  93.  
  94.    IAC WILL XFER_CTRL
  95.  
  96.    The sender of this command REQUESTS permission to, or confirms that
  97.    it will, suggest transfer to/from another server.
  98.  
  99.    IAC WONT XFER_CTRL
  100.  
  101.    The sender of this command REFUSES to suggest transfer to/from
  102.    another server.
  103.  
  104.    IAC DO XFER_CTRL
  105.  
  106.    The sender of this command REQUESTS that the receiver, or grants the
  107.    receiver permission to, suggest transfers between servers.
  108.  
  109.  
  110.  
  111. S. Denton                Expires December 1993                  [Page 2]
  112.  
  113. Internet-Draft       TELNET Transfer Control Option            June 1993
  114.  
  115.  
  116.    IAC DONT XFER_CTRL
  117.  
  118.    The sender of this command DEMANDS that the receiver not suggest
  119.    transfers between servers.
  120.  
  121.    IAC SB XFER_CTRL NAME <alternate port> IAC SE
  122.  
  123.    The sender specifies a remote host to which the connection must be
  124.    transferred immediately.  The sender has already sent all necessary
  125.    state information to the remote host via a private channel, and the
  126.    remote host is waiting for the connection to be made.  The sender can
  127.    break the connection immediately.
  128.  
  129.    The parameter specifies the address of the suggested host.  It is
  130.    formatted as "<ip-address> [' ' <tcp-port> [' ' commentary]]".  The
  131.    <ip-address> is the Internet address expressed as four decimal
  132.    numbers separated by periods; optionally a DNS-style host name could
  133.    be specified.  Space characters are NOT allowed to appear within the
  134.    name.  If the TCP port number will be the default telnet service port
  135.    (23), nothing more needs to be said.  Otherwise a space character
  136.    will be issued, followed by the port number expressed as a 1-5 digit
  137.    decimal number.  Finally, another space character may be issued
  138.    followed by human-readable text proposing an alternate description of
  139.    the channel, for instance "gopher server at Yoyodyne.com".  Space
  140.    characters are allowed within the commentary.  An application
  141.    compliant with this proposal is allowed to silently ignore the
  142.    commentary.  All information will be encoded using NVT ASCII.
  143.  
  144.    IAC SB XFER_CTRL IS <role> IAC SE
  145.  
  146.    The sender demands to play the specified role in all subsequent
  147.    Telnet negotiations of all kinds.
  148.  
  149.    IAC SB XFER_CTRL SEND IAC SE
  150.  
  151.    The sender requests that the receiver specify which role it wishes to
  152.    play in all subsequent negotiations.
  153.  
  154.    IAC SB XFER_CTRL INFO <role> IAC SE
  155.  
  156.    The sender confirms that it is to play the specified role in all
  157.    subsequent negotiations.
  158.  
  159. 3.  Defaults
  160.  
  161.    WONT XFER_CTRL
  162.  
  163.    DONT XFER_CTRL
  164.  
  165.    i.e., this protocol will not be used.
  166.  
  167.  
  168.  
  169. S. Denton                Expires December 1993                  [Page 3]
  170.  
  171. Internet-Draft       TELNET Transfer Control Option            June 1993
  172.  
  173.  
  174. 4.  Description and Implementation Notes
  175.  
  176.    WILL and DO are used only at the beginning of the connection to
  177.    obtain and grant permission for future negotiations.  Either side is
  178.    free to begin negotiations.  The protocol is symmetric:  a person
  179.    could use this option to move a Telent session from a workstation to
  180.    a personal digital assistant.  Only the sender of DO XFER_CTRL may
  181.    send SB XFER_CTRL NAME <alternate port>; if both sides might wish to
  182.    do this, they should both send DO XFER_CTRL.
  183.  
  184.    Note that it is common to use the word "server" to refer to the side
  185.    of the connection that did the passive TCP open (TCP LISTEN state),
  186.    and the word "client" to refer to the side of the connection that did
  187.    the active open.  In a hand-off from one client to another, the
  188.    proposed recipient must have already performed a passive TCP open and
  189.    be expecting the connection from the server.  At this point the
  190.    notions of server and client can become confused, for example, in the
  191.    context of the Telnet Authentication Option.  Also, it is easy to
  192.    imagine that the recipient would also be willing to accept a
  193.    connection from another Telnet client that wishes a "talk"
  194.    connection.  This is the rationale for the IS/SEND/INFO sub-protocol.
  195.    Once both sides have agreed to use XFER_CTRL negotiations, they
  196.    should confirm which role they wish to play for the remainder of the
  197.    session.  Generally, the side which performed an active open "knows"
  198.    what role it should play, and should confirm this role by
  199.    transmitting the IS sub-negotiation.  The side which performed the
  200.    passive open may have expectations regarding its role, in which case
  201.    it should send the INFO sub-negotiation, or it may not care, in which
  202.    case it should transmit the SEND sub-negotiation.  In the latter
  203.    case, once an IS sub-negotiation is received, the "passive" side
  204.    should be acknowledge receipt by sending the INFO sub-negotiation.
  205.  
  206.    The IS/SEND/INFO sub-protocol may be used regardless of whether a
  207.    side of the connection is in only the DO XFER_CTRL state, only the
  208.    WILL XFER_CTRL state, or both.  (The author has given much thought to
  209.    a separate DO/WILL/DONT/WONT SERVE option protocol, but ultimatly
  210.    rejected the idea because of the tight coupling with the XFER_CTRL
  211.    negotiation and irrelevance to all other Telnet negotiations.)
  212.    Because of the possible effect that the semantics of these
  213.    subnegotiations can have on subsequent Telnet option negotiations,
  214.    XFER_CTRL negotiations should be performed as early as possible in
  215.    the session.
  216.  
  217.    Neither end of a connection should ever assume that any Telnet state
  218.    carries over from a previous connection terminated by XFER_CTRL NAME.
  219.    In particular, authentication and/or encryption should be
  220.    renegotiated with as much paranoia (or as little?) as was exhibited
  221.    in the original session.  There does seem to be a need for an
  222.    "anonymous" authentication method that can establish that multiple
  223.    connections are from the same source, even though one cannot verify
  224.  
  225.  
  226.  
  227. S. Denton                Expires December 1993                  [Page 4]
  228.  
  229. Internet-Draft       TELNET Transfer Control Option            June 1993
  230.  
  231.  
  232.    the identity of that source.
  233.  
  234. 5.  Examples
  235.  
  236.    In the following examples, all quoted strings are NVT ASCII.
  237.  
  238.    1.  Server demands transfer to an alternate server.
  239.        Client                           Server
  240.        [ The client connects to the service at castor.gemini.org.  ]
  241.                                         IAC WILL XFER_CTRL
  242.        IAC DO XFER_CTRL
  243.        [ Time passes.  Server decides to require transferring the
  244.          connection to an alternate server.  ]
  245.                                         IAC SB XFER_CTRL DO
  246.                                         "123.45.67.89 6565
  247.                                         SomeMud@pollux.gemini.org" IAC
  248.                                         SE
  249.        [ The server is requiring the user to reconnect to an alternate
  250.          host.  A comment is included to futher identify the new port.
  251.          The server will break the connection at this point.  The client
  252.          should immediately connect to port 6565 at pollux.gemini.org.
  253.          ]
  254.    2.  Client connects to an alternate server supporting dynamic control
  255.    transfer and reconnection.
  256.        Client                           Server
  257.        [ Client connects to server at pollux.gemini.org.  ]
  258.                                         IAC WILL XFER_CTRL
  259.        IAC DO XFER_CTRL
  260.        [ Client and server are connected.  ]
  261.    3.  Transfer of server connection from one client to another.
  262.        Host 1                           Host A
  263.        [ Server (Host A) has connected to client (Host 1).  Both sides
  264.          have authenticated themselves to their mutual satisfaction.  ]
  265.        IAC WILL XFER_CTRL
  266.                                         IAC DO XFER_CTRL
  267.        [ Time passes.  Host 1 decides to transfer the connection to an
  268.          alternate host.  Host 2 performs a passive TCP open on port
  269.          1234.  ]
  270.        IAC SB XFER_CTRL DO "44.55.66.77
  271.        1234" IAC SE
  272.        [ Host 1 breaks connection.  Host A performs an active TCP open
  273.          to the suggested host and port.  ]
  274.  
  275.        Host 2                           Host A
  276.        IAC WILL XFER_CTRL
  277.                                         IAC DO XFER_CTRL
  278.        [ Both hosts have now agreed to the XFER_CTRL protocol.  ]
  279.        IAC SB XFER_CTRL SEND IAC SE
  280.                                         IAC SB XFER_CTRL IS SERVER IAC
  281.                                         SE
  282.  
  283.  
  284.  
  285. S. Denton                Expires December 1993                  [Page 5]
  286.  
  287. Internet-Draft       TELNET Transfer Control Option            June 1993
  288.  
  289.  
  290.        IAC SB XFER_CTRL INFO CLIENT IAC
  291.        SE
  292.        [ From this point on for the purposes of this or any other Telnet
  293.          option, Host A will be treated as though it had originally
  294.          performed a passive TCP open (Host A is the Server) and Host 2
  295.          will be treated as though it had originally performed an active
  296.          TCP open (Host 2 is the Client).  ]
  297.        IAC WILL AUTHENTICATION IAC SE
  298.                                         IAC DO AUTHENTICATION IAC SE
  299.        [ Both hosts agree to use the Telnet authentication option.  Even
  300.          though RFC 1416 specifies that only the side of the session
  301.          that performed an active open may send WILL AUTHENTICATION, the
  302.          successful negotiation of XFER_CTRL WILL LOGON has reversed
  303.          logical direction of the connection.  (Note: An ANONYMOUS
  304.          authentication type has NOT been defined as of the writing of
  305.          this RFC.  Its use here is as an example only.)  ]
  306.                                         IAC SB AUTHENTICATION SEND
  307.                                         ANONYMOUS CLIENT|ONE_WAY IAC SE
  308.        IAC SB AUTHENTICATION NAME
  309.        "john@yoyodyne.com" IAC SE
  310.        IAC SB AUTHENTICATION IS
  311.        ANONYMOUS CLIENT|ONE_WAY AUTH
  312.        ... IAC SE
  313.                                         IAC SB AUTHENTICATION REPLY
  314.                                         ANONYMOUS CLIENT|ONE_WAY ACCEPT
  315.                                         IAC SE
  316.  
  317. Future directions
  318.  
  319.    The original concept featured a command to handle non-mandatory
  320.    transfers.  This idea ran aground during the initial implementation
  321.    because of various uncertainties in the semantics of the command.
  322.  
  323.    It might be useful if the stable end of the connection could be used
  324.    as the repository of connection state information during the transfer
  325.    from the old host to the new.
  326.  
  327. Acknowledgements
  328.  
  329.    Thanks to the inventor of Cyberportals, which inspired me to invent a
  330.    standardized protocol to accomplish the same result.
  331.  
  332. References
  333.  
  334.    [1] Reynolds, J., and J. Postel, "Assigned Numbers", STD 2, RFC 1340,
  335.    USC/Information Sciences Institute, July 1992.
  336.  
  337.    [2] Borman, D., "Telnet Authentication Option", RFC 1416, Cray
  338.    Research, Inc., February 1993.
  339.  
  340.  
  341.  
  342.  
  343. S. Denton                Expires December 1993                  [Page 6]
  344.  
  345. Internet-Draft       TELNET Transfer Control Option            June 1993
  346.  
  347.  
  348.    [4] Alagappan, K., "Telnet Authentication: SPX", RFC 1412, Digital
  349.    Equipment Corporation, January 1985.
  350.  
  351.    [3] Borman, D., "Telnet Authentication: Kerberos", RFC 1411, Cray
  352.    Research, Inc., January 1993.
  353.  
  354.    [5] Borman, D., "Telnet Environment Option", RFC 1408, Cray Research,
  355.    Inc., February 1993.
  356.  
  357.    [6] Reynolds, J., and J. Postel, "File Transfer Protocol", RFC 959,
  358.    USC/Information Sciences Institute, October 1985.
  359.  
  360. Security Considerations
  361.  
  362.    Security issues are discussed in section 4.
  363.  
  364. Author's Address
  365.  
  366.    Sam Denton
  367.    Coal Services Corp.
  368.    301 North Memorial Drive
  369.    St. Louis, MO  63102
  370.  
  371.    Phone:  (314) 342-7853
  372.    Fax:    (314) 342-3424
  373.    Email:  sunarch.central.sun.com!peabody!sam.denton
  374.  
  375.    This document is an Internet Draft.  Internet Drafts are working
  376.    documents of the Internet Engineering Task Force (IETF), its Areas,
  377.    and its Working Groups. Note that other groups may also distribute
  378.    working documents as Internet Drafts.
  379.  
  380.    Internet Drafts are draft documents valid for a maximum of six
  381.    months. Internet Drafts may be updated, replaced, or obsoleted by
  382.    other documents at any time.  It is not appropriate to use Internet
  383.    Drafts as reference material or to cite them other than as a "working
  384.    draft" or "work in progress."
  385.  
  386.    Please check the 1id-abstracts.txt listing contained in the
  387.    internet-drafts Shadow Directories on nic.ddn.mil, nnsc.nsf.net,
  388.    nic.nordu.net, ftp.nisc.sri.com, or munnari.oz.au to learn the
  389.    current status of any Internet Draft.
  390.  
  391.  
  392.  
  393.  
  394.  
  395.  
  396.  
  397.  
  398.  
  399.  
  400.  
  401. S. Denton                Expires December 1993                  [Page 7]
  402.  
  403.  
  404.  
  405.